import java.lang.reflect.Array;
import java.util.Comparator;
import java.util.PriorityQueue;

public class Solution {
    /*
    利用 api完成堆排序
     */
    public int findKthLargest(int[] nums, int k) {
        PriorityQueue<Integer> minHeap=new PriorityQueue<>();

        for (int num : nums) {
            minHeap.add(num);
            if(minHeap.size()>k){
                minHeap.poll();
            }
        }
        return  minHeap.peek();
    }
    /*
     手写堆
     */
//    public int findKthLargest2(int[] nums, int k) {
//        class Heap{
//            int size=0;
//            int[] heap;
//            public Heap(int len){
//                heap=new int[len+1];
//            }
//            private  int parent(int index){
//                if(index==0)
//                    throw new IllegalArgumentException("index 0,doesn't have parent");
//                return (index-1)/2;
//            }
//            private  int leftChild(int index){
//                return index*2+1;
//            }
//            private int rightChild(int index){
//                return index*2+2;
//            }
//            public int peek() {
//                return heap[1];
//            }
//            public int pop(){
//
//            }
//
//        }
//
//    }
}
